#ifndef __ZHU_OS_KERNEL64_CPU_H__
#define __ZHU_OS_KERNEL64_CPU_H__
#include "types.h"
#include "task.h"

// KPCR：这是安装在CPU上的一个寄存器，
// 也被称作内核进程控制寄存器。它主要被操作系统用于存储和控制处理器的状态。
typedef struct 
{
    uint64_t id;
    task_t* task;
    uint64_t esp0;
    uint64_t esp3;
    uint64_t thread_esp0;
} __attribute__((packed)) kpcr_t;

kpcr_t* kpcr_create(uint32_t id);

void bsp_init();

void cpu_broadcast(void);

void cpu_signal(u8 index);

#endif